package com.studio49.exmple.common.util;


public class CryptoUtils {

	/**
	 * md5 加密 （全大写）
	 * 
	 * @param data
	 * @return 返回 MD5 加密字符串
	 */
	public static String md5ByUtf8(String data) {
		return MD5Utils.md5ByUtf8(data);
	}

	/**
	 * md5 加密 （全大写）
	 * 
	 * @param data
	 * @return 返回 MD5 加密字符串
	 */
	public static String md5ByUtf8ToUpperCase(String data) {
		return MD5Utils.md5ByUtf8(data);
	}

	/**
	 * md5 加密 全大写
	 * 
	 * @param data
	 * @return 返回 MD5 加密字符串
	 */
	public static String md5ToUpperCase(String data) {
		return MD5Utils.md5ByUtf8(data);
	}

	/**
	 * md5 加密 （全小写）
	 * 
	 * @param data
	 * @return 返回 MD5 加密字符串
	 */
	public static String md5ByUtf8ToLowerCase(String data) {
		return MD5Utils.md5ByUtf8ToLowerCase(data);
	}

	/**
	 * md5 加密 全小写
	 * 
	 * @param data
	 * @return 返回 MD5 加密字符串
	 */
	public static String md5(String data) {
		return MD5Utils.md5ByUtf8ToLowerCase(data);
	}

	/**
	 * md5 加密 16位长度 使用32位加密结果获取获取16位md5加密结果 32位结果中的第8到24位
	 * 
	 * @param data
	 * @return 返回16位长度 MD5 加密字符串
	 */
	public static String md5By16Len(String data) {
		return MD5Utils.md5ByUtf8(data).substring(8, 24);
	}

	/**
	 * aes 加密
	 * 
	 * @param data
	 * @return 返回 aes 加密字符串
	 */
	public static String aesEncryptUtf8(String data) {
		return AESUtils.encrypt(data);
	}

	/**
	 * aes 解密
	 * 
	 * @param data
	 * @return 返回 aes 解密字符串
	 */
	public static String aesDecryptUtf8(String data) {
		return AESUtils.decrypt(data);
	}
}
